package test06.stream.demo02.t08;

import java.util.Optional;
import java.util.stream.Stream;

/**
 * @author ZQX
 * @date 2025-04-08
 */
public class MainTest03 {
    public static void main(String[] args) {
        // 第一：定义集合或数组 - 数据源
        Integer[] arr = {1, 2, 3, 4};

        // 第二：创建 Stream 对象
        // Stream<Integer> stream = Stream.of(arr);

        // 第三：调用 API 方法，实现相关的操作 - 延迟方法 + 终结方法
        // int s = 1;
        // for (Integer i : arr) {
        //     s = s * i;
        // }
        // R apply(T t, U u);

        Integer data = Stream.of(arr).reduce(1, (t, u) -> t * u);
        Optional<Integer> minData = Stream.of(arr).reduce((t, u) -> t < u ? t : u);
        Optional<Integer> maxData = Stream.of(arr).reduce((t, u) -> t > u ? t : u);

        System.out.println("求积：" + data);
        System.out.println("最小值：" + minData.get());
        System.out.println("最大值：" + maxData.get());


    }
}
